package com.cj.cms.web.security;

import java.util.HashMap;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;

import com.cj.cms.entity.Template;
import com.cj.cms.service.TemplateManager;
import com.cj.common.orm.hibernate.EntityManager;
import com.cj.common.web.struts2.CRUDActionSupport;
import com.cj.common.web.struts2.Struts2Utils;
import com.cj.sys.service.security.SysConfigManager;

public class TemplateAction extends CRUDActionSupport<Template>{
	@Autowired
	private TemplateManager templateManager;
	private HashMap<String,String> templateTypeMap;
	
	private String templateType;
	private List<Template> templates;

	/**
	 * 按类型取模版---返回div
	 * @return
	 */
	public String findByType(){
		try {
			if(StringUtils.isEmpty(templateType))
				templates = templateManager.getAll();
			else
				templates = templateManager.findByTypes(templateType);
			return "typeList";
		} catch (Exception e) {
			setErrMessage(e.getMessage(), e);
			return ERROR;
		}
	}
	@Override
	public String save() {
		try {
			if(!StringUtils.isEmpty(entity.getPath())){
				if(entity.getPath().startsWith(Struts2Utils.getRequest().getContextPath())){
					entity.setPath(entity.getPath().substring(Struts2Utils.getRequest().getContextPath().length()));
				}
			}
			getEntityManager().save(entity);
			addActionMessage("保存成功");
			return list();			
		} catch (Exception e) {
			setErrMessage(e.getMessage(), e);
			return ERROR;
		}
	}
	
	@Override
	public EntityManager getEntityManager() {
		return templateManager;
	}
	
	@Override
	protected void prepareModel() throws Exception{
		if (getId() != null) {
			entity = templateManager.get(getId());
		} else {
			entity = new Template();
		}
	}
	
	public HashMap<String, String> getTemplateTypeMap() {
		return SysConfigManager.configByType(Template.CONFIG_TEMPLATE_TYPE);
	}
	
	public String getTemplateType() {
		return templateType;
	}
	
	public void setTemplateType(String templateType) {
		this.templateType = templateType;
	}
	public List<Template> getTemplates() {
		return templates;
	}
	
//	未用
//	/**
//	 * @return 
//	 */
//	public String returnChecked(){
//		try {
//			if(StringUtils.isEmpty(templateType))
//				templates = templateManager.getAll();
//			else
//				templates = templateManager.findByTypes(templateType);
//			return "checkedList";
//		} catch (Exception e) {
//			setErrMessage(e.getMessage(), e);
//			return ERROR;
//		}
//	}
}
